"""
智能体团队页面渲染模块。
"""
import streamlit as st

# 从 app_setup 导入 logger (如果需要)
# try:
#     from .app_setup import logger
# except ImportError:
#     import logging
#     logging.basicConfig(level=logging.INFO)
#     logger = logging.getLogger(__name__)

# 团队成员数据
TEAM_MEMBERS = [
    {
        "name": "张明睿", "role": "首席市场分析师",
        "description": "资深市场分析师，擅长宏观经济分析和技术指标分析，拥有15年金融市场分析经验和CFA资格认证。",
        "specialty": "宏观趋势分析、指数研判", "avatar": "👨‍💼"
    },
    {
        "name": "李芳华", "role": "高级个股分析师",
        "description": "专注于A股市场个股研究的分析师，擅长财务报表分析和公司治理评估，拥有10年从业经验。",
        "specialty": "个股基本面分析、财务报表解读", "avatar": "👩‍💼"
    },
    {
        "name": "王哲宇", "role": "首席策略顾问",
        "description": "资深投资策略专家，拥有20年投资经验和哈佛商学院MBA学位，擅长宏观策略研判和资产配置优化。",
        "specialty": "投资策略制定、资产配置", "avatar": "👨‍💼"
    },
    {
        "name": "赵建国", "role": "投资组合管理总监",
        "description": "经验丰富的投资组合管理者，精通量化交易和技术分析，在管理大型基金和高净值客户资产方面拥有丰富经验。",
        "specialty": "投资组合管理、交易执行", "avatar": "👨‍💻"
    },
    {
        "name": "陈远山", "role": "首席投资官",
        "description": "在资产管理行业有25年经验的资深投资专家，擅长整合不同观点，能在复杂环境中做出清晰决策。",
        "specialty": "最终决策、风险管理", "avatar": "👨‍⚖️"
    },
    {
        "name": "吴雨晨", "role": "科技行业研究专员",
        "description": "专注于科技行业的研究专员，对科技行业的产业链、竞争格局和技术发展趋势有深入了解。",
        "specialty": "科技行业研究、前沿技术探索", "avatar": "👩‍🔬"
    }
]

# 团队沟通记录数据
CONVERSATIONS = [
    {
        "agent": "张明睿 (市场分析师)",
        "message": "根据最新的PMI数据和成交量分析，市场呈现震荡上行趋势，科技板块有望接棒消费板块成为市场新的领涨主线。",
        "time": "09:30:15"
    },
    {
        "agent": "李芳华 (个股分析师)",
        "message": "对科技板块龙头股进行了梳理，重点推荐半导体和人工智能相关个股，其中A公司季报超预期，有望引领行业上行。",
        "time": "10:15:22"
    },
    {
        "agent": "王哲宇 (策略顾问)",
        "message": "建议增配科技和医疗板块，适当降低消费板块配置，整体维持中高仓位策略，密切关注流动性边际变化。",
        "time": "11:05:48"
    },
    {
        "agent": "陈远山 (首席投资官)",
        "message": "同意科技板块的配置建议，但需控制单一行业敞口，尤其关注半导体产业链的估值水平，部分个股估值已处于历史高位。",
        "time": "11:30:36"
    },
    {
        "agent": "赵建国 (组合管理)",
        "message": "已根据投资决策调整持仓，增持半导体龙头A公司、B公司各2%，减持消费龙头C公司3%，执行情况良好，滑点控制在0.2%以内。",
        "time": "14:20:15"
    }
]

# 智能体协作流程图数据 (Mermaid 格式)
WORKFLOW_DATA = """
    flowchart TB
        A[市场分析] --> B[个股研究]
        B --> C[制定投资策略]
        C --> D[做出投资决策]
        D --> E[执行交易]
        E --> F[评估表现]

        subgraph "市场分析"
        A1[分析宏观经济] --> A2[研判市场趋势]
        A2 --> A3[分析行业轮动]
        A3 --> A4[发现投资主题]
        end

        subgraph "个股研究"
        B1[基本面分析] --> B2[技术面分析]
        B2 --> B3[估值分析]
        B3 --> B4[风险评估]
        end

        subgraph "投资策略"
        C1[资产配置] --> C2[行业配置]
        C2 --> C3[个股选择]
        C3 --> C4[风控措施]
        end
"""

def render_agent_team():
    """渲染智能体团队界面"""
    st.markdown('<div class="main-header">智能体投资团队</div>', unsafe_allow_html=True)

    # --- 团队成员介绍 ---
    render_team_members()

    # --- 团队协作流程 ---
    render_workflow()

    # --- 团队沟通记录 ---
    render_conversations()


def render_team_members():
    """渲染团队成员介绍部分"""
    st.markdown('<div class="sub-header">团队成员</div>', unsafe_allow_html=True)
    col1, col2 = st.columns(2)
    for i, member in enumerate(TEAM_MEMBERS):
        target_col = col1 if i % 2 == 0 else col2
        with target_col:
            with st.expander(f"{member['avatar']} {member['name']} - {member['role']}"):
                st.markdown(f"**简介**: {member['description']}")
                st.markdown(f"**专长**: {member['specialty']}")


def render_workflow():
    """渲染团队协作流程图"""
    st.markdown('<div class="sub-header">智能体协作流程</div>', unsafe_allow_html=True)
    try:
        st.graphviz_chart(WORKFLOW_DATA)
    except Exception as e:
        st.warning(f"无法渲染流程图: {e}")
        # logger.warning(f"无法渲染流程图: {e}", exc_info=True)


def render_conversations():
    """渲染团队沟通记录"""
    st.markdown('<div class="sub-header">团队沟通记录</div>', unsafe_allow_html=True)
    # 尝试从 workflow_result 获取真实的沟通记录
    # 这里我们暂时还使用静态数据 CONVERSATIONS
    conversations_to_display = CONVERSATIONS # 后续可以替换为 st.session_state 中的动态数据

    with st.expander("查看团队沟通记录"):
        if conversations_to_display:
            for conv in conversations_to_display:
                st.markdown(f"**{conv.get('time', 'N/A')} - {conv.get('agent', '未知')}**")
                st.markdown(f"> {conv.get('message', '无内容')}")
                st.markdown("---")
        else:
            st.info("暂无沟通记录。")